Confusion over Apache2::Request and Apache2::RequestRec

Confusion over Apache2::Request and Apache2::RequestRec

am 20.08.2009 09:20:59 von Doug Sims

--000e0cd48b58e9f81304718d9795
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

I'm confused about something and I wonder if anyone can help me to
understand what's going on. The code shown below works fine but as I was
looking over this before changing something else I realized that it probably
shouldn't. I'm using an Apache2::Request object to return a connection
object to get the remote_ip but the documentation for Apache2::Request
doesn't show a connection method - that's in Apache2::RequestRec.

Why does connection() work on an Apache2::Request object?

Thanks!

-Doug


Apache2::Request:
http://httpd.apache.org/apreq/docs/libapreq2/group__apreq__x s__request.html
Apache2::RequestRec:
http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html# C_connection_


In the PerlResponseHandler:

my $requestrec = shift if $ENV{MOD_PERL};
my $request = Apache2::Request->new($requestrec);
my $session = Sessions->new($request, $mysql);



{package Sessions;

sub new {
my $class=shift;
my $self={};
bless ($self, $class);

$self->{REQUEST}=shift;
$self->{DBH}=shift;

{...snip...}

$self->{DBH}->do('INSERT INTO failedloginattempts (username,
password, ip, session, attempttime) VALUES
('.$self->{DBH}->quote($username).','.$self->{DBH}->quote($p assword).',
INET_ATON('.$self->{DBH}->quote(*$self->{REQUEST}->connectio n()->remote_ip*).'),
'.$self->{DBH}->quote($self->{SESSION}).', NOW())');

--000e0cd48b58e9f81304718d9795
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable


I'm confused about something and I wonder if anyone can help me to =
understand what's going on.=A0 The code shown below works fine but as I=
was looking over this before changing something else I realized that it pr=
obably shouldn't.=A0 I'm using an Apache2::Request object to return=
a connection object to get the remote_ip but the documentation for Apache2=
::Request doesn't show a connection method - that's in Apache2::Req=
uestRec.


Why does connection() work on an Apache2::Request object?

Thanks=
!

-Doug


Apache2::Request: org/apreq/docs/libapreq2/group__apreq__xs__request.html">htt p://httpd.apach=
e.org/apreq/docs/libapreq2/group__apreq__xs__request.html


Apache2::RequestRec: /RequestRec.html#C_connection_">http://perl.apache.org/docs/ 2.0/api/Apache2=
/RequestRec.html#C_connection_



In the PerlResponseHandler: r>

=A0 my $requestrec =3D shift if $ENV{MOD_PERL};
=A0 my $request =3D =
Apache2::Request->new($requestrec);
=A0 my $session =3D Sessions->=
new($request, $mysql);



{package Sessions;

=A0 sub new=
{
  =A0 my $class=3Dshift;

  =A0 my $self=3D{};
  =A0 bless ($self, $class);

  =
=A0 $self->{REQUEST}=3Dshift;
  =A0 $self->{DBH}=3Dshift;
<=
br>{...snip...}

      =A0 $self->{DBH}->do('IN=
SERT INTO failedloginattempts (username, password, ip, session, attempttime=
) VALUES ('.$self->{DBH}->quote($username).','.$self->=
{DBH}->quote($password).', INET_ATON('.$self->{DBH}->quote=
($self->{REQUEST}->connection()->remote_ip).'), '.$=
self->{DBH}->quote($self->{SESSION}).', NOW())');





--000e0cd48b58e9f81304718d9795--

Re: Confusion over Apache2::Request and Apache2::RequestRec

am 20.08.2009 09:26:29 von Joe Schaefer

--0-1511524103-1250753189=:28890
Content-Type: text/plain; charset=us-ascii

Apache2::Request is a derived class of Apache2::RequestRec,
so what you're doing is perfectly ok.



>
>From: Douglas Sims
>To: modperl
>Sent: Thursday, August 20, 2009 3:20:59 AM
>Subject: Confusion over Apache2::Request and Apache2::RequestRec
>
>
>I'm confused about something and I wonder if anyone can help me to understand what's going on. The code shown below works fine but as I was looking over this before changing something else I realized that it probably shouldn't. I'm using an Apache2::Request object to return a connection object to get the remote_ip but the documentation for Apache2::Request doesn't show a connection method - that's in Apache2::RequestRec.
>
>Why does connection() work on an Apache2::Request object?
>
>Thanks!
>
>-Doug
>
>
>Apache2::Request: http://httpd.apache.org/apreq/docs/libapreq2/group__apreq__x s__request.html
>>Apache2::RequestRec: http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html# C_connection_
>
>
>In the PerlResponseHandler:
>
> my $requestrec = shift if $ENV{MOD_PERL};
> my $request = Apache2::Request->new($requestrec);
> my $session = Sessions->new($request, $mysql);
>
>
>
>{package Sessions;
>
> sub new {
> my $class=shift;
>> my $self={};
> bless ($self, $class);
>
> $self->{REQUEST}=shift;
> $self->{DBH}=shift;
>
>{...snip...}
>
> $self->{DBH}->do('INSERT INTO failedloginattempts (username, password, ip, session, attempttime) VALUES ('.$self->{DBH}->quote($username).','.$self->{DBH}->quote($p assword).', INET_ATON('.$self->{DBH}->quote($self->{REQUEST}->connection ()->remote_ip).'), '.$self->{DBH}->quote($self->{SESSION}).', NOW())');
>
>
>



--0-1511524103-1250753189=:28890
Content-Type: text/html; charset=us-ascii

Apache2::Request is a derived class of Apache2::RequestRec,
so what you're doing is perfectly ok.


From: Douglas Sims <ratsbane@gmail.com>
To: modperl <modperl@perl.apache.org>
Sent:
Thursday, August 20, 2009 3:20:59 AM
Subject: Confusion over Apache2::Request and
Apache2::RequestRec



I'm confused about something and I wonder if anyone can help me to understand what's going on.  The code shown below works fine but as I was looking over this before changing something else I realized that it probably shouldn't.  I'm using an Apache2::Request object to return a connection object to get the remote_ip but the documentation for Apache2::Request doesn't show a connection method - that's in Apache2::RequestRec.


Why does connection() work on an Apache2::Request object?

Thanks!

-Doug


Apache2::Request:

Apache2::RequestRec:



In the PerlResponseHandler:


  my $requestrec = shift if $ENV{MOD_PERL};
  my $request = Apache2::Request->new($requestrec);
  my $session = Sessions->new($request, $mysql);



{package Sessions;

  sub new {
    my $class=shift;

    my $self={};
    bless ($self, $class);

    $self->{REQUEST}=shift;
    $self->{DBH}=shift;

{...snip...}

        $self->{DBH}->do('INSERT INTO failedloginattempts (username, password, ip, session, attempttime) VALUES ('.$self->{DBH}->quote($username).','.$self->{DBH}->quote($password).', INET_ATON('.$self->{DBH}->quote($self->{REQUEST}->connection()->remote_ip).'), '.$self->{DBH}->quote($self->{SESSION}).', NOW())');








--0-1511524103-1250753189=:28890--